1. /* scfdpowc.cpp by K.Tsuru */
  2. // function ID = 9105
  3. /********************************
  4. SComplex class
  5. It returns a^z = exp(z*log(a)).
  6. In the case a < 0,
  7. a = -(-a) = exp(i*pi)*(-a)
  8. log(a) = i*pi+log(-a)
  9. *********************************/
  10. #ifndef SN_H
  11. #include "sn.h"
  12. #endif
  13. SComplex Cpow(const SDouble& a, const SComplex& z){
  14. SComplex loga;
  15. // It allows a < 0.
  16. if(a.Sign() == 0) a.SetError(a.DOMAIN_ERR, "Cpow", 9105);// a == 0
  17. else if(z.IsZero(9105)) return 1.0; // z == 0
  18. else if(a.Sign() > 0) loga.Set( Log(a), 0.0 );
  19. else loga.Set( Log(-a), Pi() ); // = log(-a)+i*pi
  20. return Cexp(z*loga);
  21. }

scfdpowc.cpp : last modifiled at 2016/09/16 10:06:36(626 bytes)
created at 2017/10/06 15:21:28
The creation time of this html file is 2017/10/06 15:27:09 (Fri Oct 06 15:27:09 2017).